With an increasing proliferation of electronic data transfer between computing devices, efficient and scalable solutions to implement data compression are needed to facilitate data transfer and storage. Lempel-Ziv 77 (“LZ77”) is a widely used lossless data compression algorithm. The LZ77 algorithm works by identifying redundancies, or matches, within a data stream and replacing repeating occurrences of the redundant data with references to a single copy of the data, thereby outputting a compressed data stream.
The LZ77 algorithm is often implemented using software involving a sliding window and hash structure to identify repeating occurrences of data in a data stream. Software implementations have limited ability to identify matching strings of data because they process multiple data streams in parallel. While efficient at reducing the time of data compression, these software solutions may fail to identify the longest matching sequences of data in a data stream. Such software implementations are often complex and have limited flexibility.
In view of the shortcomings of current implementations, an improved system and method for compressing data using an LZ77 or LZ77-like algorithm is needed.